package ModelLayer;
import java.util.ArrayList;

/**
 * Indeholder information og metoder til varer klassen
 */
public class Varer
{
    private int id;
    private String beskrivelse;
    private String vareNavn;
    private double pris;
    private ArrayList<Eksemplar> nyEksemplar;

    /**
     * Constructor for objects of class Varer
     */
    public Varer(int id, String beskrivelse, String vareNavn, double pris)
    {
        this.id = id;
        this.beskrivelse = beskrivelse;
        this.vareNavn = vareNavn;
        this.pris = pris;
        nyEksemplar = new ArrayList<Eksemplar>();
    }

    /**
     * @return ID.
     */
    public int getId()
    {
        return id;
    }

    /**
     * @return beskrivelse.
     */
    public String getBeskrivelse()
    {
        return beskrivelse;
    }

    /**
     * @return Varenavn.
     */
    public String getVarenavn()
    {
        return vareNavn;
    }

    /**
     * @return Pris.
     */
    public double getPris()
    {
        return pris;
    }

    /**
     * @param Sring Beskrivelse.
     */
    public void setBeskrivelse(String beskrivelse)
    {
        this.beskrivelse = beskrivelse;
    }

    /**
     * @param String Varenavn.
     */
    public void setVarenavn(String vareNavn)
    {
        this.vareNavn = vareNavn;
    }

    /**
     * @param Int Serienummer, double Indkøbspris.
     */
    public void tilfoejEksemplar(long serienummer, double indkoebspris)
    {
        Eksemplar e = new Eksemplar(serienummer, indkoebspris);
        nyEksemplar.add(e);
    }

    /**
     * @param int Serienummer.
     * @return et Eksemplar Objekt.
     */
    public Eksemplar findEksemplar(long serienummer)
    {
        for(Eksemplar eksemplar : nyEksemplar)
            if(eksemplar.getSerienummer() == serienummer){
                return eksemplar;
        }
        return null;
    }
    
     /**
     * Bruges til at fjerne et eksemplar.
     * @param eksemplar.
     */
    public void fjernEksemplar(Eksemplar eksemplar)
    {
        nyEksemplar.remove(eksemplar);
    }


    /**
     * @return Printer serienummeret for alle Eksemplarer i listen
     */
    public void printAlleEksemplar()
    {
        for(Eksemplar eksemplar :  nyEksemplar){
            eksemplar.printSerienummer();
        }
        System.out.println("\nSamlet antal paa lager: " + nyEksemplar.size());
        
    }   
    
     /**
     * Lister stoerelsen af Eksemplar ArrayList.
     */
    public int listEksemplarStoerelse()
    {
        return nyEksemplar.size();
    }
    
     /**
     * Bruges til at printe vare info.
     */
    public void printInfo()
    {
        System.out.println("\nVare Navn: " + vareNavn);
        System.out.println("Vare Beskrivelse: " + beskrivelse);
        System.out.println("");        
    }
    
}
